package com.example.demo1;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * 第一题：双色球系统 第一种做法 -
 */
public class Test1 {
    public static void main(String[] args) {
        // 需求：某双色球系统，红球是1-35之间的数据，篮球是1-15之间的数据，一注双色球号码是由6个不重复的号码和1个篮球号码组成的。
        // * 请随机一组双色球号码，6个红球号码要求不重复，且升序排序输出，篮球号码放在最后面输出。
        // * 假设上图展示的是中奖号码，请用程序判断出第一个功能随机出的双色球号码中了几个红球和几个篮球。
        // 假设的中奖号码 10 12 30 16 7 17  12

        // 1.随机6个不重复红球号码  1-35 1个篮球1-15，升序输出，篮球放最后面。

        List<Integer> luckNum = new ArrayList<>();
        // 把正确的号码添加到集合中
        Collections.addAll(luckNum, 10, 12, 30, 16, 7, 17, 12);

        String lottery = getLottery(luckNum);
        System.out.println(lottery);
    }

    // 随机生成一个双色球号码
    public static String getLottery(List<Integer> list) {
        // 定义一个集合存放红球号码
        List<Integer> redBalls = new ArrayList<>();

        // 生成1-35之间的随机数
        while (redBalls.size() <= 6) {
            int i = (int) (Math.random() * 35 + 1);
            // 防止重复 加判断
            if (!redBalls.contains(i)) {
                redBalls.add(i);
            }
        }

        // 随机生成一个篮球号码
        int blueBall = (int) (Math.random() * 15 + 1);

        // 对红球进行排序
        Collections.sort(redBalls);
        int count = 0; // 统计中奖红球个数
        // 遍历两个集合
        for (int i = 0; i < redBalls.size() - 1; i++) {
            if (redBalls.get(i).equals(list.get(i))) {
                count++;
            }
        }
        System.out.println("红球中了" + count + "个");

        // 获取ArrayList的最后一个元素比较
        if (redBalls.get(redBalls.size() - 1).equals(list.get(redBalls.size() - 1))) {
            System.out.println("篮球中了1个");
        } else {
            System.out.println("篮球未中");
        }
        return redBalls.toString() + "\t" + blueBall;
    }
}
